class Solution {
public:
    string convert(string s, int numRows) {
        string ret;
        int n=s.size();
        int d=2*numRows-2;

        if(numRows==1)
        {
            return s;
        }

        for(int i=0;i<n;i+=d)
        {
            ret+=s[i];
        }

        for(int i=1;i<numRows-1;++i)
        {
            for(int k=i,j=d-k;j<n||k<n;j+=d,k+=d)
            {
                if(k<n)
                {
                    ret+=s[k];
                }

                if(j<n)
                {
                    ret+=s[j];
                }
            }
        }

        for(int i=numRows-1;i<n;i+=d)
        {
            ret+=s[i];
        }
        return ret;
    }
};
